facebook offline_access廃止への対応
facebookで、無期限のtokenを取得できたoffline_accessパーミッションが廃止され、
代わりに60日間有効のtokenを取得できるようになりました。
https://developers.facebook.com/roadmap/offline-access-removal/
この切り替えの対応をしていたのですが、何故か60日間有効のtokenが取得できませんでした。
上のリンクにある通り、下記を実行しても2時間程度のtokenが返されてしまいます。
client_id=APP_ID&
client_secret=APP_SECRET&
grant_type=fb_exchange_token&
fb_exchange_token=EXISTING_ACCESS_TOKEN
どうやら新規のアプリケーション作成ではなく、既存のアプリケーションに対して切り替えを行う時は注意が必要なようです。
既にアプリケーションを許可しているユーザーの場合、一度アプリケーションへの許可を削除した後でないと、
60日間有効のtokenが取得できませんでした。
こちらのやり取りが参考になりました。
http://developers.facebook.com/bugs/252502434827018?browse=search_4fb4dfe1105a20183185730
ユーザーのアプリケーションの許可の削除は、
Graph API › User で提供されているようです。
PROFILE_ID/permissionsでパラメーターのpermissionを指定しないとアプリケーションの許可自体が削除されるようです。
access_token=ACCESS_TOKEN
尚、手動での削除は下記の手順で可能です。
- facebookにログイン -> ホーム右のメニュー -> アカウント設定
- 左のメニューのアプリ
- アプリケーションの右の×ボタンを選択